﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using FM.Common;
using FM.Events;
using FM.Services;
using FM.录音.Data;
using FM.录音.Events;
using FM.录音.接口;
using Microsoft.Practices.Prism.PubSubEvents;
using Microsoft.Practices.Prism.Regions;
using Microsoft.Practices.Unity;

namespace FM.录音.Services
{
    public class 选项子视图调用服务 : 启动基类
    {
        public 选项子视图调用服务(IUnityContainer 人事部cs, IEventAggregator 新闻部cs, IRegionManager 行政部cs)
            : base(人事部cs, 新闻部cs, 行政部cs)
        {
        }

        public override void 启动()
        {
            if (Is启动) return;
            base.启动();

            新闻部.GetEvent<调用选项子视图Event>().Subscribe(调用选项视图Action, true);

        }

        private void 调用选项视图Action(object obj2)
        {
            var obj3 = obj2 as 配置树枝1;
            if (obj3 == null)
            {
                return;
            }

            var t = obj3.Model.GetType();
            if (t == typeof(系统配置))
            {
                调用系统配置视图(运行状态.系统配置1);
            }
            else if (t == typeof(Fm录音配置1))
            {
                调用通道配置视图(obj3.Model);
            }
            else if (t == typeof(Fm定时任务1))
            {
                调用录音任务配置视图(obj3.Model);
            }
      
        }

        private void 调用录音任务配置视图(IFm定时任务 find)
        {
            var 视图名称 = find.唯一编号.ToString();
            var 选项中 = 行政部.Regions[位置.选项中];
            var 激活 = 小冰.激活视图(选项中, 视图名称);
            if (!激活)
            {
                var 视图2 = 人事部.Resolve<Views.任务编辑视图>();
                var vm2 = 人事部.Resolve<ViewModels.任务编辑视图ViewModel>();
                vm2.Model = find;
                视图2.DataContext = vm2;
                选项中.Add(视图2, 视图名称);
                选项中.Activate(视图2);
            }
        }

        private void 调用通道配置视图(IFm录音配置 find)
        {
            var 视图名称 = find.唯一编号.ToString();
            var 选项中 = 行政部.Regions[位置.选项中];
            var 激活 = 小冰.激活视图(选项中, 视图名称);
            if (!激活)
            {
                var 视图2 = 人事部.Resolve<Views.通道编辑视图>();
                var vm2 = 人事部.Resolve<ViewModels.通道编辑视图ViewModel>();
                vm2.Model = find;
                视图2.DataContext = vm2;
                选项中.Add(视图2, 视图名称);
                选项中.Activate(视图2);
            }
        }

        private void 调用系统配置视图(系统配置 find)
        {
            var 选项中 = 行政部.Regions[位置.选项中];
            var 激活 = 小冰.激活视图(选项中, "系统配置");
            if (!激活)
            {
                var 视图2 = 人事部.Resolve<Views.系统配置视图>();
                var vm2 = 人事部.Resolve<ViewModels.系统配置视图ViewModel>();
                vm2.Model = find;
                视图2.DataContext = vm2;
                选项中.Add(视图2, "系统配置");
                选项中.Activate(视图2);
            }
        }
    }
}